package tests;
import java.util.List;

import junit.framework.TestCase;
import model.Juego;
import model.Mapa;
import model.Nave;
import model.Posicion;

import org.junit.Before;
import org.junit.Test;


public class JuegoTest extends TestCase{
	
	@Before
	public void beforeTest(){
		Mapa.getMapa().vaciarMapa();
	}

	@Test
	public void testJuegoPoneAvionesEnVuelo() {
		Juego elJuego = new Juego();
		elJuego.enviarNave();
		assertTrue(elJuego.getTorreDeControl().cantidadDeNaves()==1);
		
	}

	@Test
	public void testElJuegoSeCreaConAlMenosUnaPista() {
		Juego unJuego = new Juego ();
		assertTrue(unJuego.hayUnaPista());
	}
	@Test
	public void testJuegoSeleccionaNavesEnClick(){
		Posicion posicion = Posicion.generarPosicionAleatoria();
		Juego elJuego = new Juego();
		elJuego.enviarNave();
		Nave nave = elJuego.getMapa().getNaves().getFirst();
		nave.setPosicion(posicion);
		//El juego selecciona a la nave.
		elJuego.notificarEvento(posicion.getX(), posicion.getY());
		assertTrue(nave.getEstaSeleccionado());
	}
//	@Test 
//	public void testJuegoMueveNavesEnClick(){
//		Posicion posicionInicial = Posicion.generarPosicionAleatoria();
//		Posicion posicionFinal = Posicion.generarPosicionAleatoria();
//		Posicion posVacia = new Posicion(0,0);
//		Juego elJuego = new Juego();
//		elJuego.enviarNave();
//		Nave nave = elJuego.getMapa().getNaves().getFirst();
//		nave.setPosicionAnterior(posVacia);
//		nave.setPosicion(posicionInicial);
//		//El juego selecciona a la nave.
//		elJuego.notificarEvento(posicionInicial.getX(), posicionInicial.getY());
//		//El juego mueve nave
//		elJuego.notificarEvento(posicionFinal.getX(), posicionFinal.getY());
//		
//		Posicion pos = nave.getPosicion();
//
//		assertFalse(pos.equals(posicionFinal));
//		
//	}
	}
